Transform coding and decoding of video data usually includes what is called entropy coding. For compression, the pixel information of a picture, e.g., of a residual picture after motion compensated prediction, or of a picture for intra-coding is divided into blocks. The blocks are transformed, e.g., by a discrete cosine transform (DCT) or a similar transform, and the resulting transform coefficients are quantized. The quantized transform coefficients are ordered, e.g., from low to higher frequencies along a path in the two dimensional transform domain. The ordered series of quantized transform coefficients is then losslessly encoded by an entropy coding method. One popular entropy coding method is variable length coding in which one or more events, representing one or more quantized coefficients of properties thereof, are encoded by codewords such that events that are more likely-to-occur are encoded on average by codewords that are shorter than are events that are less likely-to-occur. Variable length coding (VLC), due to its nice tradeoff in efficiency and simplicity, has been widely used in entropy coding, particularly when the codec is desired to have low computational complexity.
U.S. patent application Ser. No. 11/069,621 to Chen et al. published as US 20060039615, patent application Ser. No. 11/385,183 published as US 20070019877, and U.S. patent application Ser. No. 11/270,138 published as US 20060056720 describes joint amplitude and position coding methods for variable length coding of quantized transform coefficients as occur in transform image and video compression methods. The methods described in these applications were found to be relatively efficient in coding consecutive nonzero transform coefficients compared to separately encoding runs and the amplitude levels. Assuming conventional transform and quantization of image blocks in which the most-likely-to-occur quantized transform amplitude is 0, and the next most-likely-to-occur amplitude is 1, some of the coding methods disclosed in the above-mentioned patent publications takes into account that the most likely to appear non-zero-valued coefficient has amplitude ‘1’ in an ordered series of quantized transform coefficients and encodes the appearances of amplitude-1/non-amplitude-1 coefficients together with coefficient positions using a multi-dimensional variable length code (VLC) mappings, e.g., a multi-dimensional VLC table. In other words, in one implementation, the following quantities are coded jointly by one variable length codeword: run-length of zeros that precede one or more nonzero coefficients, run-length of the nonzero coefficients, and which of those nonzero coefficients have a magnitude of 1. A separate 1-D VLC is then used to code the amplitudes of non-1 non-zero coefficients.
Experimental results have shown that the joint amplitude and position coding described in the above-mentioned patent publications are successful entropy coding schemes. However, in the joint-coding implementation, the size of the code table used to carry out the joint encoding can grows exponentially as the run-length of nonzero coefficients increases. This may require a prohibitive amount of memory for some applications such low cost and/or low power implementations.
A method that allows for smaller code table sizes while preserving much of the coding efficiency is therefore desirable.